package cn.iocoder.yudao.module.dt.controller.admin.activity.vo;

import lombok.*;
import java.util.*;
import java.math.BigDecimal;
import io.swagger.annotations.*;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
import org.springframework.format.annotation.DateTimeFormat;

import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;

@ApiModel("管理后台 - 活动分页 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class ActivityPageReqVO extends PageParam {

    @ApiModelProperty(value = "活动标题")
    private String title;

    @ApiModelProperty(value = "活动类型，读取字典配置，新手局、比赛等")
    private String type;

    @ApiModelProperty(value = "活动内容说明")
    private String content;

    @ApiModelProperty(value = "活动报名开始时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private Date[] signStartTime;

    @ApiModelProperty(value = "活动报名结束时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private Date[] signEndTime;

    @ApiModelProperty(value = "活动封面图片地址")
    private String coverPic;

    @ApiModelProperty(value = "活动开始时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private Date[] startTime;

    @ApiModelProperty(value = "活动结束时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private Date[] endTime;

    @ApiModelProperty(value = "活动总人数限制")
    private Integer totalNumber;

    @ApiModelProperty(value = "活动开始人员数量")
    private Integer startNumber;

    @ApiModelProperty(value = "每人提交人次限制")
    private Integer submitNumber;

    @ApiModelProperty(value = "活动排队人数限制")
    private Integer lineNumber;

    @ApiModelProperty(value = "收款商户号")
    private String posNo;

    @ApiModelProperty(value = "活动形式：线上、线下")
    private String actForm;

    @ApiModelProperty(value = "活动地址，定位")
    private String actAddress;

    @ApiModelProperty(value = "活动可见权限，1.管理员可见；2.任何人可见；3.已提交人可见")
    private String actViewAuthority;

    @ApiModelProperty(value = "活动分享权限，1.不限制. 2.参与人能转发;3.仅限发起人、管理员分享按钮。3.发起人、管理员分享小程序卡片")
    private String actShareAuthority;

    @ApiModelProperty(value = "取消管理：1. 提交后不允许自行取消；2.提交后可以取消；3. 提交后在规定时间点前可以取消")
    private String cancelManage;

    @ApiModelProperty(value = "取消截至时间点")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private Date[] cancelTime;

    @ApiModelProperty(value = "报名后是否可修改: 1. 可以自行修改.2. 不可以修改")
    private String editManage;

    @ApiModelProperty(value = "活动允许快速填写, 允许提交者初始之前填写过的信息")
    private String quickFill;

    @ApiModelProperty(value = "提交后显示内容：1.什么都不显示；2.人数、头像和昵称;3.人数和头像;4.人数")
    private String submitListShow;

    @ApiModelProperty(value = "提交前显示, 后续建表存内容模板")
    private String submitBeforeShow;

    @ApiModelProperty(value = "提交后显示, 后续建表存内容模板")
    private String submitAfterShow;

    @ApiModelProperty(value = "活动发起人显示内容，后续建表存内容模板，此字段存模板id")
    private String sponsorShow;

    @ApiModelProperty(value = "活动费用")
    private BigDecimal actFee;

    @ApiModelProperty(value = "会员优惠价格")
    private BigDecimal actMemberFee;

    @ApiModelProperty(value = "球员优惠价格")
    private BigDecimal actTeamFee;

    @ApiModelProperty(value = "收费类型，1.统一收费，2. 多项目收费. ")
    private String feeType;

    @ApiModelProperty(value = "是否aa收费，1. 固定金额收费，2. aa收费，先固定金额收，后续人多退款")
    private String feeIsAa;

    @ApiModelProperty(value = "提交人限制：1.所有人. 2. 仅限会员. 3.仅限球员. 4. 黑名单限制")
    private String submitAuthority;

    @ApiModelProperty(value = "已提交人数")
    private Integer signCount;

    @ApiModelProperty(value = "活动发起人id")
    private Long sponsorId;

    @ApiModelProperty(value = "创建时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private Date[] createTime;

}
